---
title: "Quickstart"
description: "Get Bytebot up and running in minutes"
---

## Prerequisites

Before getting started with Bytebot, make sure you have:

- Docker installed on your system
- Sufficient system resources (recommended: 2+ CPU cores, 4GB+ RAM)
- For the agent system: Docker Compose and an Anthropic API key

## Running Bytebot

Getting started with Bytebot is simple and straightforward. You can run it as a standalone desktop container or as a full agent system with a chat UI.

<AccordionGroup>
  <Accordion icon="cube" title="Running the Standalone Desktop Container">
    <AccordionGroup>
      <Accordion icon="play" title="Using the Pre-built Image">
        The easiest way to get started is to use the pre-built Bytebot image:

        ```bash
        docker-compose -f infrastructure/docker/docker-compose.core.yml pull # pull latest remote image
        docker-compose -f infrastructure/docker/docker-compose.core.yml up -d --no-build # start container
        ```

        This will start Bytebot with default settings. The container exposes several ports:
        - `9990`: REST API and noVNC web access
        - `5900`: VNC server
        - `6080`: noVNC direct
        - `6081`: noVNC HTTP proxy
      </Accordion>

      <Accordion icon="cube" title="Building the Docker Image (Alternative)">
        Alternatively, you can build the Bytebot Docker image locally:

        ```bash
        docker-compose -f infrastructure/docker/docker-compose.core.yml up -d --build # build image and start container
        ```
      </Accordion>

      <Accordion icon="stop" title="Stopping the Container">
        To shut down the container:

        ```bash
        docker-compose -f infrastructure/docker/docker-compose.core.yml down
        ```
      </Accordion>

      <Accordion icon="display" title="Accessing the Desktop">
        You can access the Bytebot desktop environment in two ways:

        **Using a VNC Client**:
        Connect to `localhost:5900` with any VNC client.

        **Using a Web Browser**:
        Navigate to `http://localhost:9990/vnc` in your web browser for noVNC access.
      </Accordion>
    </AccordionGroup>

  </Accordion>

  <Accordion icon="robot" title="Running the Full Agent System (Alpha)">
    <AccordionGroup>
      <Accordion icon="key" title="Setting Up Environment Variables">
        Create a `.env` file with your Anthropic API key:

        ```bash
        echo "ANTHROPIC_API_KEY=your_api_key_here" > infrastructure/docker/.env
        ```

        Replace `your_api_key_here` with your actual Anthropic API key.
      </Accordion>

      <Accordion icon="play" title="Starting the Services">
        Run the full Bytebot system using Docker Compose:

        ```bash
        docker-compose -f infrastructure/docker/docker-compose.yml --env-file infrastructure/docker/.env up -d
        ```

        This will start the following services using the pre-built image:
        - Bytebot desktop container
        - PostgreSQL database
        - Bytebot agent service
        - Bytebot chat UI
      </Accordion>

      <Accordion icon="stop" title="Stopping the Services">
        To shut down all services:

        ```bash
        docker-compose -f infrastructure/docker/docker-compose.yml --env-file infrastructure/docker/.env down
        ```
      </Accordion>

      <Accordion icon="display" title="Accessing the System">
        Once all services are running, you can access Bytebot through:

        - **Bytebot Desktop (noVNC)**: `http://localhost:9990/vnc`
        - **Bytebot Agent API**: `http://localhost:9991`
        - **Bytebot Chat UI**: `http://localhost:9992`
      </Accordion>
    </AccordionGroup>

  </Accordion>
</AccordionGroup>

## Using the Computer Use API

The core functionality of Bytebot is programmatic control of the desktop environment through its API.

<CodeGroup>
```bash Terminal
# Example: Move the mouse to coordinates (100, 200)
curl -X POST http://localhost:9990/computer-use \
  -H "Content-Type: application/json" \
  -d '{"action": "move_mouse", "coordinates": {"x": 100, "y": 200}}'

# Example: Take a screenshot

curl -X POST http://localhost:9990/computer-use \
 -H "Content-Type: application/json" \
 -d '{"action": "screenshot"}'

````

```python Python
import requests

def control_computer(action, **params):
    url = "http://localhost:9990/computer-use"
    data = {"action": action, **params}
    response = requests.post(url, json=data)
    return response.json()

# Move the mouse
control_computer("move_mouse", coordinates={"x": 100, "y": 100})

# Take a screenshot
screenshot = control_computer("screenshot")
````

```javascript JavaScript
const axios = require("axios");

async function controlComputer(action, params = {}) {
  const url = "http://localhost:9990/computer-use";
  const data = { action, ...params };
  const response = await axios.post(url, data);
  return response.data;
}

// Example usage
async function runExample() {
  // Move mouse
  await controlComputer("move_mouse", { coordinates: { x: 100, y: 100 } });

  // Take screenshot
  const screenshot = await controlComputer("screenshot");
  console.log("Screenshot taken:", screenshot);
}
```

</CodeGroup>

<Card
  title="API Reference"
  icon="code"
  href="/api-reference/computer-use/unified-endpoint"
>
  View the complete Computer Use API documentation
</Card>

## Using the Agent Chat UI

When running the full agent system, you can interact with Bytebot through a chat interface that allows you to:

1. Create and manage tasks
2. Chat with the AI assistant
3. View the desktop in real-time as the agent performs actions
4. Monitor task progress and results

<img
  src="/static/chat-ui-example.png"
  alt="Bytebot Chat UI"
  className="w-full max-w-4xl"
/>

## Next Steps

Now that you have Bytebot up and running, here are some next steps:

<CardGroup cols={2}>
  <Card
    title="Explore the Architecture"
    icon="diagram-project"
    href="/core-concepts/architecture"
  >
    Learn more about Bytebot's architecture and components
  </Card>
  <Card
    title="Desktop Environment"
    icon="desktop"
    href="/core-concepts/desktop-environment"
  >
    Discover details about the containerized desktop environment
  </Card>
  <Card title="Agent System" icon="robot" href="/core-concepts/agent-system">
    Learn about the agent task management system
  </Card>
  <Card title="API Reference" icon="code" href="/api-reference/agent/tasks">
    Explore the Agent API for task management
  </Card>
</CardGroup>
